83 #define SLAVE_ADDRESS 0x48
90 #define CS_SMCLK_DESIRED_FREQUENCY_IN_KHZ 1000
97 #define CS_SMCLK_FLLREF_RATIO 30
105 WDT_A_hold(WDT_A_BASE);
142 GPIO_setAsPeripheralModuleFunctionInputPin(
145 GPIO_FUNCTION_UCB0SCL
147 GPIO_setAsPeripheralModuleFunctionInputPin(
150 GPIO_FUNCTION_UCB0SDA
159 EUSCI_B_I2C_initMasterParam
param = {0};
160 param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
161 param.i2cClk = CS_getSMCLK();
162 param.dataRate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
163 param.byteCounterThreshold = 0;
164 param.autoSTOPGeneration = EUSCI_B_I2C_NO_AUTO_STOP;
165 EUSCI_B_I2C_initMaster(EUSCI_B0_BASE, &
param);
168 EUSCI_B_I2C_setSlaveAddress(EUSCI_B0_BASE,
173 EUSCI_B_I2C_setMode(EUSCI_B0_BASE,
174 EUSCI_B_I2C_TRANSMIT_MODE
178 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
180 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
181 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
182 EUSCI_B_I2C_NAK_INTERRUPT
185 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
186 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
187 EUSCI_B_I2C_NAK_INTERRUPT
195 while (EUSCI_B_I2C_SENDING_STOP == EUSCI_B_I2C_masterIsStopSent(EUSCI_B0_BASE));
197 EUSCI_B_I2C_masterSendMultiByteStart(EUSCI_B0_BASE,
TXData++);
199 __bis_SR_register(CPUOFF + GIE);
211 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
212 #pragma vector=USCI_B0_VECTOR
214 #elif defined(__GNUC__)
215 __attribute__((interrupt(USCI_B0_VECTOR)))
219 switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG))
223 case USCI_I2C_UCALIFG:
225 case USCI_I2C_UCNACKIFG:
227 EUSCI_B_I2C_masterSendStart(EUSCI_B0_BASE);
229 case USCI_I2C_UCTXIFG0:
233 EUSCI_B_I2C_masterSendMultiByteNext(EUSCI_B0_BASE,
TXData++);
239 EUSCI_B_I2C_masterSendMultiByteStop(EUSCI_B0_BASE);
#define CS_SMCLK_FLLREF_RATIO
#define CS_SMCLK_DESIRED_FREQUENCY_IN_KHZ
MPU_initThreeSegmentsParam param
__bic_SR_register_on_exit(LPM3_bits|GIE)